home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / esc.jar / com / extensibility / xa / AttrTable.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-06-30  |  6.9 KB  |  183 lines

  1. package com.extensibility.xa;
  2.  
  3. import com.extensibility.app.BaseAction;
  4. import com.extensibility.rock.RTable;
  5. import com.extensibility.rock.ScrollPop;
  6. import com.extensibility.rock.table.QlickerDataSource;
  7. import com.extensibility.util.Debug;
  8. import com.extensibility.xml.AttributeDeclaration;
  9. import com.extensibility.xml.BaseDeclaration;
  10. import java.awt.Dialog;
  11. import java.awt.event.MouseEvent;
  12. import java.util.Enumeration;
  13. import java.util.EventObject;
  14. import java.util.Vector;
  15. import javax.swing.AbstractButton;
  16. import javax.swing.JComponent;
  17. import javax.swing.JFrame;
  18. import javax.swing.JMenuItem;
  19. import javax.swing.JPopupMenu;
  20. import javax.swing.JTable;
  21. import javax.swing.KeyStroke;
  22. import javax.swing.SwingUtilities;
  23. import javax.swing.table.TableCellEditor;
  24. import javax.swing.table.TableCellRenderer;
  25.  
  26. public final class AttrTable extends DeclTableExtra {
  27.    static AttributeHeader rendHdr = new AttributeHeader();
  28.    KeyStroke keyRequired;
  29.    public BaseAction toggleRequiredAction = new 1(this, "toggle.required");
  30.  
  31.    String getGlobalName() {
  32.       return ((AttrTableDataModel)((JTable)this).getModel()).getGlobalName();
  33.    }
  34.  
  35.    public JPopupMenu createCellPopup(MouseEvent var1, int var2, int var3, TableCellEditor var4) {
  36.       Object var5 = super.createCellPopup(var1, var2, var3, var4);
  37.       if (var3 != 3) {
  38.          return (JPopupMenu)var5;
  39.       } else {
  40.          AggregateAttributeDecl var6 = ((AttrTableDataModel)((JTable)this).getModel()).getAggregate(var2);
  41.          if (var6.isShared()) {
  42.             if (var5 == null) {
  43.                var5 = new ScrollPop();
  44.             } else {
  45.                ((JPopupMenu)var5).addSeparator();
  46.             }
  47.  
  48.             CullActionListener var7 = new CullActionListener(this, var6);
  49.             Enumeration var8 = var6.getAttributes();
  50.  
  51.             while(var8.hasMoreElements()) {
  52.                AttributeDeclaration var9 = (AttributeDeclaration)var8.nextElement();
  53.                JMenuItem var10 = ((JPopupMenu)var5).add(var9.isGlobal() ? this.getGlobalName() : var9.getOwner().getName());
  54.                ((AbstractButton)var10).addActionListener(var7);
  55.             }
  56.          }
  57.  
  58.          return (JPopupMenu)var5;
  59.       }
  60.    }
  61.  
  62.    public AttrTable(AttrTableDataModel var1) {
  63.       super(var1);
  64.    }
  65.  
  66.    public void addNotify() {
  67.       super.addNotify();
  68.       AttrTableDataModel var1 = (AttrTableDataModel)((JTable)this).getModel();
  69.       this.keyRequired = KeyStroke.getKeyStroke(var1.getHeaderMnemonic(7), 8);
  70.       ((JComponent)this).registerKeyboardAction(this.toggleRequiredAction, this.keyRequired, 1);
  71.    }
  72.  
  73.    public void removeNotify() {
  74.       super.removeNotify();
  75.       ((JComponent)this).unregisterKeyboardAction(this.keyRequired);
  76.    }
  77.  
  78.    public int getInitialColumnWidth(int var1) {
  79.       switch (var1) {
  80.          case 2:
  81.             return 100;
  82.          case 3:
  83.             return 80;
  84.          case 4:
  85.             return 80;
  86.          case 5:
  87.             return 120;
  88.          case 6:
  89.             return 100;
  90.          case 7:
  91.             return 0;
  92.          default:
  93.             return super.getInitialColumnWidth(var1);
  94.       }
  95.    }
  96.  
  97.    public double getColumnWeight(int var1) {
  98.       switch (var1) {
  99.          case 2:
  100.             return 0.2;
  101.          case 3:
  102.             return 0.2;
  103.          case 4:
  104.             return 0.15;
  105.          case 5:
  106.             return (double)0.25F;
  107.          case 6:
  108.             return 0.2;
  109.          case 7:
  110.             return (double)0.0F;
  111.          default:
  112.             return super.getColumnWeight(var1);
  113.       }
  114.    }
  115.  
  116.    public AggregateAttributeDecl getSelectedAggregate() {
  117.       int var1 = ((RTable)this).getSelectedRow();
  118.       return var1 < 0 ? null : ((AttrTableDataModel)((JTable)this).getModel()).getAggregate(var1);
  119.    }
  120.  
  121.    public TableCellRenderer createHeaderRenderer(int var1) {
  122.       return (TableCellRenderer)(var1 <= 2 ? super.createHeaderRenderer(var1) : rendHdr);
  123.    }
  124.  
  125.    public TableCellEditor createCellEditor(int var1) {
  126.       switch (var1) {
  127.          case 2:
  128.             return new NameQlicker((QlickerDataSource)null);
  129.          case 3:
  130.             return new OwnerQlicker((QlickerDataSource)((JTable)this).getModel(), this.getGlobalName());
  131.          case 4:
  132.             return new TypeQlicker((QlickerDataSource)((JTable)this).getModel(), ((DeclTable)this).getSchemaDoc());
  133.          case 5:
  134.             return new OptionsQlicker(((DeclTable)this).getSchemaDoc(), new OptionsQDataSource(((DeclTable)this).getSchemaDoc()));
  135.          case 6:
  136.             return new ValueQlicker((QlickerDataSource)null);
  137.          default:
  138.             return super.createCellEditor(var1);
  139.       }
  140.    }
  141.  
  142.    protected BaseDeclaration paste(BaseDeclaration var1, SchemaDoc var2, SchemaDoc var3) throws Exception {
  143.       Debug.assert(var1 instanceof AggregateAttributeDecl, String.valueOf("not what I expected to be pasting: ").concat(String.valueOf(var1.getClass().getName())));
  144.       AttributeDeclaration var4 = null;
  145.       Enumeration var5 = ((AggregateAttributeDecl)var1).getAttributes();
  146.       Object var6 = null;
  147.       Vector var7 = new Vector();
  148.  
  149.       while(var5.hasMoreElements()) {
  150.          AttributeDeclaration var9 = (AttributeDeclaration)var5.nextElement();
  151.          var7.addElement(var9);
  152.       }
  153.  
  154.       for(int var8 = 0; var8 < var7.size(); ++var8) {
  155.          AttributeDeclaration var10 = (AttributeDeclaration)var7.elementAt(var8);
  156.          var4 = (AttributeDeclaration)var3.insertDeclaration(var10, (BaseDeclaration)null, (Boolean)null, (Boolean)null, var2);
  157.       }
  158.  
  159.       return var4;
  160.    }
  161.  
  162.    public boolean showCellDialog(int var1, int var2, EventObject var3) {
  163.       if (var2 == 5) {
  164.          ConstraintsDialog var4 = new ConstraintsDialog(this, (JFrame)SwingUtilities.getRoot(this), ((DeclTable)this).getDeclTableModel().getSchemaDoc(), ((DeclTable)this).getDeclTableModel().getDeclaration(var1), new OptionsQlicker(((DeclTable)this).getSchemaDoc(), new OptionsQDataSource(((DeclTable)this).getSchemaDoc())), ((OptionsQlicker)((JTable)this).getCellEditor()).getText());
  165.          var4.setTableInfo(var1, var2);
  166.          ((Dialog)var4).show();
  167.          return true;
  168.       } else if (var2 == 6) {
  169.          return super.showCellDialog(var1, var2, var3);
  170.       } else {
  171.          return ((DeclTableExtra)this).isExtraCol(var2) ? super.showCellDialog(var1, var2, var3) : false;
  172.       }
  173.    }
  174.  
  175.    public boolean hasCellDialog(int var1, int var2) {
  176.       if (((DeclTableExtra)this).isExtraCol(var2)) {
  177.          return super.hasCellDialog(var1, var2);
  178.       } else {
  179.          return var2 == 5 || var2 == 6;
  180.       }
  181.    }
  182. }
  183.